Настройка синхронизации пользователей из ALD Pro в Keycloak

Основная настройка Keycloak подробно описана на официальном сайте Keycloak. В данной инструкции описано создание Федерации пользователей (User federation) с пользователями ALD Pro.

Термины и определения

  • Федерация пользователей - синхронизация пользователей с сервером ALD Pro;

  • Single Sign-On - SSO - метод аутентификации, который позволяет пользователям безопасно аутентифицироваться сразу в нескольких приложениях и сайтах, используя один набор учетных данных.

Предварительная настройка ALD Pro

Создание пользователя

В ALD Pro необходимо создать пользователя (рисунок 1), через которого будет осуществляться синхронизация пользователей, групп, подразделений. В целях безопасности пользователь не должен обладать правами администратора. Для синхронизации пользователей достаточно прав обычного пользователя.

../../../_images/1.png

Активация пользователя

Перед дальнейшей работы, следует авторизоваться под созданным пользователем и сменить ему пароль.

Краткая инструкция настройки Keycloak

Наименование

Значение

Hostname

astralinux.ru

URI/Port

ldap://astralinux.ru.ru:389 (_STARTTLS_) Note: Plaintext is not allowed.

ldaps://astralinux.ru:636

BaseDN

uid=_ALD_user_,cn=users,cn=_accounts_,dc=astralinux,dc=ru

UserDN

cn=users,cn=_accounts_,dc=astralinux,dc=ru

GroupDN

ou=users,o=_YOUR_ORG_ID_,dc=jumpcloud,dc=com

Username LDAP attribute, RDN LDAP attribute

uid

UID LDAP attribute

ipaUniqueId

Search scope

One level

Подробная инструкция настройки Keycloak

Приведенная ниже инструкция актуальна для Keycloak Version 23.0.3

Создание User Federation c ALD Pro

Создание User Federation

  1. Выполнен вход в Keycloak c правами администратора и создан рабочий Realm.

  2. На вкладке “User federation” выбран “Add Ldap providers”, во всплывающем окне выбран “LDAP” (рисунок 2).

../../../_images/2.png

Заполнение блока General options

  1. В открывшемся окне заполнены обязательные поля (рисунок 3).

  2. В качестве вендора выбран “Other” или “Red Hat Directory Server”. В дальнейшем вендора для созданной федерации пользователя изменить нельзя.

  3. Connection URL: URL-адрес подключения ALD Pro в формате: ldap://astralinux.ru:389

  4. Остальные настройки остаются на усмотрение.

../../../_images/3.png

Заполнение блока Connection and authentication settings

  1. Тип связи (Bind type) выбран простой (simple).

  2. В “Bind DN” указан путь навигации к созданному ранее пользователю ALD Pro. DN записывается слева направо.

  3. В “Bind credentials” указан пароль от привязанного пользователя ALD Pro.

../../../_images/4.png

Тест соединения и аутентификации

На этом этапе можно проверить успешность заполнения форм, нажав последовательно на “Test connection” и “Test authentication” (рисунок 5).

../../../_images/5.png

При успешном соединении и аутентификации пользователей появятся сообщения об успешном завершении операции (рисунок 6).

../../../_images/6.png

Заполнение блока LDAP searching and updating

  1. Режим редактирования (Edit mode) выбран “READ_ONLY”.

  2. Указан путь навигации к пользователям (User DN) сервера ALD Pro.

  3. Атрибуты “Username LDAP” и “RDN LDAP” - “uid”.

  4. “UUID LDAP” - “ipaUniqueId”.

  5. Поле “User object classes” можно оставить по умолчанию.

  6. В целях безопасности каталога ALD Pro, по желанию, можно указать фильтры синхронизации для пользователей.

  7. Область поиска (Search scope) для ALD Pro - “One Level”.

  8. Параметры тайм-аут чтения (Read timeout) и пагинация (Pagination) - на усмотрение.

Пример заполнения на рисунке 7.

../../../_images/7.png

Заполнение блока Synchronization settings

  1. Для настройки импорта пользователей слайдер Import users находится в положении ON.

  2. Если пользователей много, рекомендуется при их импорте разбивать их на партии с помощью настройки размера партии (Batch size).

  3. Для полной и периодической синхронизации пользователей рекомендуется настроить время синхронизации с помощью параметров (Periodic full sync, Periodic changed users syn). Значения указываются в секундах.

../../../_images/8.png

Заполнение блоков Kerberos integration, Cache settings, Advanced settings

Остальные параметры настраиваются индивидуально и позволяют гибко управлять синхронизацией и безопасностью единого входа с помощью федерации пользователей.

Проверка синхронизации пользователей

  1. При завершении настроек сохранить федерацию пользователей. После сохранения федерация появится на вкладке “User federation” (рисунок 9).

../../../_images/9.png
  1. Выполнить переход на вкладку пользователи, здесь находятся все пользователи Realm, включая пользователей федерации. Иногда в настройках Keycloak для оптимизации работы на вкладке пользователи не отображаются пользователи федерации. Для того чтобы увидеть всех пользователей нужно в поиске ввести * и выполнить поиск.

Настройка соответствия атрибутов

Атрибуты пользователей keycloak не полностью соответствуют атрибутам ALD Pro. В таблице приведены основные соответствия атрибутов ALD Pro к Keycloak.

Keycloak

ALD Pro

Mapper type

email

mail

user-attribute-ldap-mapper

firstName

givenName

user-attribute-ldap-mapper

Синхронизация групп пользователей из ALD Pro в Keycloak

Настройка mapper в User federation

Для синхронизации пользователь должен обладать правами на чтение групп пользователей.

  1. Выбрать ldap для которой нужно синхронизировать группы (рисунок 10).

../../../_images/10.png
  1. На странице “Mappers” необходимо создать новое соответствие (рисунок 11).

../../../_images/11.png
  1. Для создания правильного mapper необходимо заполнить следующие поля:

Поле

Значение

Name

<название mapper>

Mapper type

group-ldap-mapper

LDAP Groups DN (в соответствии с примером по созданию федерации пользователя)

cn=groups,cn=accounts,dc=astralinux,dc=ru

User Groups Retrieve Strategy

GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE

Остальные поля возможно оставить в значении по умолчанию.

Настройка Client scope

  1. На вкладке “Client Scopes” выбран “Create client scope”.

  2. Параметр имя - “Groups”. Остальные по умолчанию. Сохранить.

  3. Настройка mapper для этого “Client Scopes” (рисунок 12, 13).

../../../_images/12.png
../../../_images/13.png
  1. mapper заполнен в соответствии с рисунком 14.

../../../_images/14.png

На данном шаге настройка синхронизации пользователей и групп из ALD Pro завершена.

Синхронизация подразделений

Создание mapper

Для синхронизации подразделений сервисный пользователь должен обладать правами на просмотр подразделений.

В Keycloak из коробки нет такой сущности как подразделение, но возможна синхронизация через сущность “группы”.

  1. Выполнен переход в карточку “User Federation”.

../../../_images/15.png
  1. Во вкладке “Mappers” добавлен mapper (рисунок 16).

../../../_images/16.png
  1. Для создания правильного mapper необходимо заполнить следующие поля:

Поле

Значение

Name

<название mapper>

Mapper type

group-ldap-mapper

LDAP Groups DN (в соответствии с примером по созданию федерации пользователя)

ou=astralinux.ru,cn=orgunits,cn=accounts,dc=astralinux,dc=ru

Group Name LDAP Attribute

ou

Group Object Classes

rbta-org-unit

Member-Of LDAP Attribute

rbtadp

User Groups Retrieve Strategy

GET_GROUPS_FROM_USER_MEMBEROF_ATTRIBUTE

Остальные поля остаются в значении по умолчанию.

Для корректной работы протоколов может понадобиться настройка Keycloak.